package com.youdoneed.user.user;

import com.youdoneed.base.application.ResultMessage;
import com.youdoneed.base.pagination.Page;
import com.youdoneed.base.pagination.Paging;
import com.youdoneed.user.model.User;
import com.youdoneed.user.vo.*;

import java.util.List;

/**
 * @author Ewing
 * @since 2017-04-21
 **/
public interface UserService {

    User getUser(String userId);

    List<User> getUsers(String[] userIds);

    User getUserByPhoneNo(String phoneNo);

    List<User> getUserByPhoneNos(String[] phoneNos);

    /**
     * 根据手机号码获取用户ids
     * @param phoneNos
     * @return
     * @author lid
     * @date 2017.12.26
     */
    List<String> findUserIdsByPhoneNos(String[] phoneNos);

    /**
     * 获取推荐的用户
     * @param userId
     * @return
     */
//    List<User> getRecommandUsers(String userId);

    /**
     * 手机号登陆或注册。
     */
//    ResultMessage<User> phoneNoLoginOrRegister(String phoneNo, String nation,String imgUrl);
//
//    /**
//     * 用户修改自己的基本信息。
//     */
//    long setUserBasicInfo(UserBasicInfo userParam, String token);
//
//    /**
//     * 查找其他用户
//     */
//    List<UserShow> findOthers(String userId, Paging paging, String name);
//
//    /**
//     * 根据条件查询用户。
//     */
//    Page<User> findUsers(Paging paging, String name, String phoneNo);
//
//    /**
//     * 附近的用户。
//     */
//    List<UserShow> nearbyUsers(Paging paging, String userId, NearbyUserParam nearby);
//
//    UserShow getUserShow(String userId);
//
//    /**
//     * 查询给定的ID范围内的用户。
//     */
//    List<UserBasicInfo> findInUserIds(String[] userIds, String name);
//
//    /**
//     * 改变用户的统计信息。
//     */
//    long changeStatistics(String userId, Integer totalArticleChange, Integer totalFriendChange);
//
//    /**
//     * 短信邀请好友注册。
//     */
//    void inviteUser(String myUserId, String otherPhoneNo);
//
//    /**
//     * 判断用户的通讯录的号码今天是否已邀请。
//     */
//    List<String> hasInvitedToday(String myUserId, String[] otherPhoneNos);
//
//    /**
//     * 管理员查找用户。
//     */
//    Page<User> adminFindUsers(Paging paging, FindUserParam findUserParam);
//
//    /**
//     * 管理员添加用户。
//     */
//    User adminAddUser(User user);
//
//    /**
//     * 管理员统计用户信息。
//     */
//    UserStatistics userStatistics();
//
//    /**
//     * 获取用户的个数
//     * @return
//     * @author lid
//     * @date 2017.12.25
//     */
//    Long getUserCount();
//
//    /**
//     * 获取用户通讯录中已注册的用户。
//     */
//    List<ContactUser> getContactUsers(String userId);
}
